package first.forHuaWei.codeTop;

public class LC400 {
    // 第N位数字
    public static void main(String[] args) {
        System.out.println(findNthDigit(15));
    }

    // 先确定去几位数中去找
    // 再确定去哪个数中去找
    // 在确定去该数的第几位中去找
    public static int findNthDigit(int n) {
        if (n == 0) {
            return 0;
        } else if (n <= 9) {
            return n;
        }
        int digit = 2; // 索引开始的位数
        int start = 10; // 索引开始的 起始值
        int count_index = 9 * digit * start; //该位包含的 索引数
        n -= 9;
        while (n > count_index) {
            n -= count_index;
            digit++;
            start *= 10;
            count_index = digit * start * 9;
        }
        // 开始查找，n还剩余多少位
        int i = start + (n - 1) / digit;
        int j = (n - 1) % digit;
        // 去数字i中去查找第j位
        String s = String.valueOf(i);
        char c = s.charAt(j);
        return (int) (c - '0');
    }
}
